package gov.fgn.sijyp.general.util;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

public final class MessageUtils {

  /**
   * Agrega un mensaje de informacion global
   * 
   * @param message
   */
  public static void addInfo(String message) {
    add(null, createInfo(message));
  }

  /**
   * Agrega un mensaje de informacion al clientId especificado
   * 
   * @param clientId
   * @param message
   */
  public static void addInfo(String clientId, String message) {
    add(clientId, createInfo(message));
  }

  /**
   * Agrega un mensaje de error global
   * 
   * @param message
   */
  public static void addError(String message) {
    add(null, createError(message));
  }

  /**
   * Agrega un mensaje de error al clientId especificado
   * 
   * @param clientId
   * @param message
   */
  public static void addError(String clientId, String message) {
    add(clientId, createError(message));
  }

  /**
   * Agrega el FacesMessage al clientId especificado
   * 
   * @param clientId
   * @param message
   */
  public static void add(String clientId, FacesMessage message) {
    FacesContext.getCurrentInstance().addMessage(clientId, message);
  }

  /**
   * Crea un FacesMessage con SEVERITY_INFO para el mensaje
   * 
   * @param message
   * @return
   */
  public static FacesMessage createInfo(String message) {
    return create(FacesMessage.SEVERITY_INFO, message);
  }

  /**
   * Crea un FacesMessage con SEVERITY_ERROR para el mensaje
   * 
   * @param message
   * @return
   */
  public static FacesMessage createError(String message) {
    return create(FacesMessage.SEVERITY_ERROR, message);
  }

  /**
   * Crea un FacesMessage con el FacesMessage.Severity para el mensaje
   * 
   * @param severity
   * @param message
   * @return
   */
  public static FacesMessage create(FacesMessage.Severity severity, String message) {
    return new FacesMessage(severity, message, null);
  }

}